package com.settlement.system.model.form;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Map;

/**
 * 记账项目表单对象
 */
@Schema(description = "记账项目表单对象")
@Data
public class AccountProjectForm {

    @Schema(description = "记账项目表ID")
    private Long id;

    /**
     * 对账系统平台编码
     */
    @Schema(description = "对账系统平台编码")
    private String billSystemPlatformCode;
    /**
     * 对账系统平台名称
     */
    @Schema(description = "对账系统平台名称")
    private String billSystemPlatformName;

    /**
     * 电商平台账单项目
     */
    @Schema(description = "电商平台账单项目")
    private String accountingProjectName;

    @Schema(description = "末级科目编码")
    private String lastCode;

    @Schema(description = "对方末级科目编码")
    private String otherLastCode;

    /**
     * 辅助项配置 JSON
     */
    @Schema(description = "辅助项配置")
    private Map<String, Map<String, String>> accessory;

    /**
     * 对方辅助项配置 JSON
     */
    @Schema(description = "对方辅助项配置")
    private Map<String, Map<String, String>> otherAccessory;

    /**
     * 是否分摊
     */
    @Schema(description = "是否分摊")
    private String apportionment;

    /**
     * 票前票后
     */
    @Schema(description = "票前票后")
    private String invoice;

    /**
     * 稽核标识
     */
    @Schema(description = "稽核标识")
    private String audit;

    /**
     * 是否参与记账
     */
    @Schema(description = "是否参与记账")
    private String accounting;

    /**
     * 供应商名称
     */
    @Schema(description = "供应商名称")
    private String carrier;

    /**
     * 借贷方向
     */
    @Schema(description = "借贷方向")
    private String borrowing;

    /**
     * 对方借贷方向
     */
    @Schema(description = "对方借贷方向")
    private String otherBorrowing;

    /**
     * 税率，计算时需要除以100
     */
    @Schema(description = "税率")
    private Integer rate;

    /**
     * 来源单据
     */
    @Schema(description = "来源单据")
    private String orderType;

    /**
     * 收支方向
     */
    @Schema(description = "收支方向")
    private String payType;

    @Schema(description = "资金项目计算方向")
    private String fundingDirection;
    @Schema(description = "资金项目类别配置")
    private Map<String, String> fundingProjects;
}
